
; Test cases for some predicates

(define-test-suite predicate-tests "predicate-tests" (lambda ()
     
   (bool-test string=? (string=? (make-string 3 #\a) "aaa") "(string=? (make-string 3 #\\a) \"aaa\")" #t)
   (bool-test string=? (string=? (make-string 3 #\a) "aba") "(string=? (make-string 3 #\\a) \"aba\")" #f)

   (bool-test char=? (char=? #\a #\a) "(char=? #\\a #\\a)" #t)
   (bool-test char=? (char=? #\a #\b) "(char=? #\\a #\\b)" #f)

   (bool-test char<? (char<? #\a #\b) "(char<? #\\a #\\b)" #t)
   (bool-test char<? (char<? #\a #\a) "(char<? #\\a #\\a)" #f)
   (bool-test char<? (char<? #\b #\a) "(char<? #\\b #\\a)" #f)
 
   (bool-test char? (char? #\a) "(char? #\\a)" #t)
   (bool-test char? (char? #f) "(char? #f)" #f)
  
   (bool-test scalar-value? (scalar-value? -1) "(scalar-value? -1)" #f)
   (bool-test scalar-value? (scalar-value? 65) "(scalar-value? 65)" #t)
   (bool-test scalar-value? (scalar-value? #x11ffff) "(scalar-value? #x11ffff)" #f)
  
   (bool-test eq? (eq? #t #t) "(eq? #t #t)" #t)
   (bool-test eq? (eq? #t #f) "(eq? #t #f)" #f)
   (bool-test eq? (eq? 1 #\A) "(eq? 1 #\\A)" #f)
  
   (bool-test eof-object? (eof-object? (eof-object)) "(eof-object? (eof-object))" #t)
   (bool-test eof-object? (eof-object? '()) "(eof-object? '())" #f)
   (bool-test eof-object? (eof-object? #f) "(eof-object? #f)" #f)
     
  ))